import cv2
import numpy as np
from PIL import Image
import os

#生成高斯噪声

# 确保输出目录存在
os.makedirs("../data_gaussian/1", exist_ok=True)
os.makedirs("../data_gaussian/7", exist_ok=True)

# 设置高斯分布的均值和标准差
mean = 0
sigma = 1000  #调整sigma值控制高斯噪声大小

# 处理目录5中的图像
for i in range(1, 501):
    # 读取图片
    img = cv2.imread("../data/1/{}.jpg".format(i))
    # 检查图像是否成功加载
    if img is None:
        raise ValueError("图像加载失败，请检查文件路径")

    # 添加高斯噪声
    gauss = np.random.normal(mean, sigma, img.shape).astype(np.float32)
    img_float = img.astype(np.float32)
    noisy_img = np.clip(img_float + gauss, 0, 255).astype(np.uint8)


    # 转换为灰度图像并保存
    gray_img = cv2.cvtColor(noisy_img, cv2.COLOR_BGR2GRAY)
    cv2.imwrite("../data_gaussian/1/{}.jpg".format(i), gray_img)

# 处理目录8中的图像（同上）
for i in range(1, 501):
    # 读取图片
    img = cv2.imread("../data/7/{}.jpg".format(i))
    # 检查图像是否成功加载
    if img is None:
        raise ValueError("图像加载失败，请检查文件路径")

    # 添加高斯噪声
    gauss = np.random.normal(mean, sigma, img.shape).astype(np.float32)
    img_float = img.astype(np.float32)
    noisy_img = np.clip(img_float + gauss, 0, 255).astype(np.uint8)


    # 转换为灰度图像并保存
    gray_img = cv2.cvtColor(noisy_img, cv2.COLOR_BGR2GRAY)
    cv2.imwrite("../data_gaussian/7/{}.jpg".format(i), gray_img)
